package com.lenovo.nova.util;

public class Binery {

	public int toDecimal(String radValue,int radIndex) {
		String msg = radIndex + "进制(%s) ---> 十进制 \n";
		msg = String.format(msg, radValue);
		int decimalValue = Integer.parseInt(radValue, radIndex);
		System.out.println(msg + decimalValue);
		return decimalValue;
	}

	public String decimalToHex(int decimal){
		String msg = "十进制(%d) ---> 十六进制 \n";
		msg = String.format(msg, decimal);

		String hexValue = Integer.toHexString((decimal));

		hexValue = format(hexValue);

		System.out.println(msg + hexValue);
		return hexValue;
	
	}
	
	public String decimalToBinTo(int value) {
		String msg = "十进制(%d) ---> 二进制 \n";
		msg = String.format(msg, value);

		String binValue = Integer.toBinaryString(value);

		binValue = format(binValue);

		System.out.println(msg + binValue);
		return binValue;
	}

	
	public String format(String binValue) {
		char[] ch = binValue.toCharArray();
		StringBuilder builder = new StringBuilder();
		for (int i = 0; i < ch.length; i++) {
			if (i != 0 && i % 8 == 0) {
				builder.append(' ');
				builder.append(ch[i]);
			} else {
				builder.append(ch[i]);
			}
		}

		if (builder.length() < 8) {
			int lenth = builder.length();
			for (int i = 0; i < 8 - lenth; i++) {
				builder.insert(0, '0');
			}
		}

		return builder.toString();
	}

}
